

// 等待 Wait
// command_wait

/*
如果你想等待 process::Child 完成，就必须调用 Child::wait，这会返回一个 process::ExitStatus。
*/

use std::process::Command;

pub fn test_fn() {
    let cmd_str = "D:\\PowerShell\\pwsh.exe";
    println!(" cmd = {:?}", cmd_str);
    let mut child = Command::new(cmd_str).arg("-c").arg("\"sleep 5\"").spawn().unwrap();
    // let mut child = Command::new("sleep").arg("5").spawn().unwrap();
    println!("  {:?}", cmd_str);
    // 代码中的不会等待，但是实际上是会等待的，
    //如果真的执行了 需要等待的命令，就会等待
    let _result = child.wait().unwrap();

    println!("reached end of main");
}

/*
$ rustc wait.rs && ./wait
reached end of main
# `wait` keeps running for 5 seconds
# `sleep 5` command ends, and then our `wait` program finishes
*/